{
 "cells": [
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. _nb_mutation:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mutation"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. _nb_mutation_pm:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Polynomial Mutation ('real_pm', 'int_pm')\n",
    "\n",
    "Details about the mutation can be found in <cite data-cite=\"sbx\"></cite>. This mutation follows the same probability distribution as the simulated binary crossover."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 248,
       "width": 369
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pymoo.interface import mutation\n",
    "from pymoo.factory import get_mutation\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def show(eta_mut):\n",
    "    a = np.full((5000, 1), 0.5)\n",
    "    off = mutation(get_mutation(\"real_pm\", eta=eta_mut, prob=1.0), a)\n",
    "\n",
    "    plt.hist(off, range=(0,1), bins=200, density=True, color=\"red\")\n",
    "    plt.show()\n",
    "\n",
    "show(30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 248,
       "width": 362
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "show(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Basically, the same can be applied to discrete variables as well: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 248,
       "width": 378
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "def show(eta_mut):\n",
    "    a = np.full((10000, 1), 0)\n",
    "    off = mutation(get_mutation(\"int_pm\", eta=eta_mut, prob=1.0), a, xl=-20, xu=20)\n",
    "\n",
    "    plt.hist(off, range=(-20, 20), bins=40, density=True, color=\"red\")\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "show(30)\n"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. _nb_mutation_bitflip:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Bitflip Mutation ('bin_bitflip')\n",
    "\n",
    "The bitlip mutation randomly flips a bit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 251,
       "width": 251
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def show(M):\n",
    "    plt.figure(figsize=(4,4))\n",
    "    plt.imshow(M, cmap='Greys',  interpolation='nearest')\n",
    "    plt.show()\n",
    "    \n",
    "a = np.full((100,100), False)\n",
    "mut = mutation(get_mutation(\"bin_bitflip\", prob=0.1), a)\n",
    "\n",
    "show(a != mut)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### API"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. autofunction:: pymoo.factory.get_mutation\n",
    "    :noindex:\n",
    "\n",
    ".. autofunction:: pymoo.model.mutation.Mutation\n",
    "    :noindex:"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Raw Cell Format",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
